package persistencia;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import dominio.Cliente;
import dominio.CondicionVenta;
import dominio.Cotizacion;
import dominio.Factura;
import dominio.Financiacion;
import dominio.ItemCotizacion;
import dominio.ItemFactura;
import dominio.ItemListaProveedor;
import dominio.ItemOrdenCompra;
import dominio.ItemPedido;
import dominio.ItemRemitoCliente;
import dominio.ItemRemitoProveedor;
import dominio.ItemRemitoTransporte;
import dominio.ItemSolicitudCotizacion;
import dominio.ListaProveedor;
import dominio.OrdenCompra;
import dominio.OrdenPedido;
import dominio.PagoContado;
import dominio.Pedido;
import dominio.Proveedor;
import dominio.ReferenciaFactura;
import dominio.ReferenciaRemitoCliente;
import dominio.ReferenciaRemitoProveedor;
import dominio.ReferenciaRemitoTransporte;
import dominio.RemitoCliente;
import dominio.RemitoProveedor;
import dominio.RemitoTransporte;
import dominio.Rodamiento;
import dominio.SolicitudCotizacion;

public class HibernateUtil {
	private static SessionFactory sessionFactory;

	public static SessionFactory getSessionFactory() {
		if (sessionFactory == null) {
			AnnotationConfiguration config = new AnnotationConfiguration();
			config.addAnnotatedClass(Cliente.class);
			config.addAnnotatedClass(CondicionVenta.class);
			config.addAnnotatedClass(Cotizacion.class);
			config.addAnnotatedClass(Factura.class);
			config.addAnnotatedClass(Financiacion.class);
			config.addAnnotatedClass(ItemCotizacion.class);
			config.addAnnotatedClass(ItemFactura.class);
			config.addAnnotatedClass(ItemListaProveedor.class);
			config.addAnnotatedClass(ItemOrdenCompra.class);
			config.addAnnotatedClass(ItemPedido.class);
			config.addAnnotatedClass(ItemRemitoCliente.class);
			config.addAnnotatedClass(ItemRemitoProveedor.class);
			config.addAnnotatedClass(ItemRemitoTransporte.class);
			config.addAnnotatedClass(ItemSolicitudCotizacion.class);
			config.addAnnotatedClass(ListaProveedor.class);
			config.addAnnotatedClass(OrdenCompra.class);
			config.addAnnotatedClass(OrdenPedido.class);
			config.addAnnotatedClass(PagoContado.class);
			config.addAnnotatedClass(Pedido.class);
			config.addAnnotatedClass(Proveedor.class);
			config.addAnnotatedClass(ReferenciaFactura.class);
			config.addAnnotatedClass(ReferenciaRemitoCliente.class);
			config.addAnnotatedClass(ReferenciaRemitoProveedor.class);
			config.addAnnotatedClass(ReferenciaRemitoTransporte.class);
			config.addAnnotatedClass(RemitoCliente.class);
			config.addAnnotatedClass(RemitoProveedor.class);
			config.addAnnotatedClass(RemitoTransporte.class);
			config.addAnnotatedClass(Rodamiento.class);
			config.addAnnotatedClass(SolicitudCotizacion.class);
			sessionFactory = config.buildSessionFactory();
		}
		return sessionFactory;
	}
}